1. Field of the Invention
The present invention relates generally to microprocessors, and more particularly, to an arithmetic logic unit.
2. Description of the Related Art
An arithmetic logic unit (ALU) is a module of circuitry capable of realizing a set of arithmetic and logic functions. In general the ALU receives a set of input data and creates a set of output data. The input and output data are processed in binary form by the ALU. The ALU is generally used as a standard module in microprocessors. In this manner the same ALU can be used in many different applications. One primary purpose of the ALU in the microprocessor is to perform integer addition operations. It is typical for multiple ALU's to be used in systems that are required to perform large numbers of integer addition operations. As such the ALU characteristics described in terms of speed, power consumption, and chip footprint area become important microprocessor design considerations.
Most ALU's of modern computing system are implemented using dynamic circuitry. Dynamic circuitry is generally used to improve the speed of the ALU. However, use of dynamic circuitry introduces a number of drawbacks with respect to overall system design. For instance, use of dynamic circuitry results in high power consumption and occupation of a large chip footprint area. Also, due to heavy reliance on timing and reference clocks, dynamic circuitry is vulnerable to noise perturbations. Therefore, a large amount of effort and expense must be invested in the successful design of an ALU using dynamic circuitry.
As an alternative to dynamic circuitry, regular static circuitry can be used to implement an ALU. The ALU implemented using regular static circuitry has a lower power consumption and a smaller chip footprint area as compared to the ALU implemented using dynamic circuitry. The use of regular static circuitry also yields a more robust ALU that is less vulnerable to noise perturbations. However, the computational speed of the ALU implemented using regular static circuitry is generally not competitive with an ALU implemented using dynamic circuitry.
In view of the foregoing, there is a need for an ALU that combines the beneficial characteristics of a dynamically implemented ALU and a regular statically implemented ALU. More specifically, there is a need for an ALU that offers the high speed of a dynamically implemented ALU while also offering the low power consumption and the small chip footprint area of regular statically implemented ALU.